package com.jilefojing.dao;

import java.util.List;
import java.util.Map;

import com.jilefojing.beans.enums.ItemTypeEnumForSource;
import com.jilefojing.beans.pojos.Statistics;
import com.jilefojing.dao.base.IBaseDao;

/**
 * 
 * @author 作者 jgshun
 * @date 创建时间 2016年07月19日 20时40分29秒
 */
public interface IStatisticsDao extends IBaseDao<Statistics> {

	List<Statistics> getListByItems(ItemTypeEnumForSource itemType, List<Long> itemIds);

	// Pagination<EnhancedStatistics> getPagination(StatisticsQuery
	// statisticsQuery, Pagination<EnhancedStatistics> pagination, UserContext
	// userContext);

	Statistics getByItem(ItemTypeEnumForSource itemType, Long itemId);

	/**
	 * 统计数据更新
	 * 
	 * @param id
	 *            更新目标id
	 * @param updateColumn
	 *            更新字段
	 * @param plus
	 *            是否加减 是加 否减
	 * @param value
	 *            加减值
	 */
	void updateCount(long id, String updateColumn, boolean plus, int value);

	/**
	 * 统计非实体静态数据
	 * 
	 * @param itemType
	 * @param notEntityMaps
	 *            map:{itemId:,childIds}
	 * @return
	 */
	List<Statistics> getListForNotEntitys(ItemTypeEnumForSource itemType, Map<Long, List<Long>> notEntityMaps);

}
